1. Field of the Invention
This invention relates generally to a fibre channel arbitrated loop, and more particularly to a fibre channel elastic FIFO delay controller.
2. Description of the Related Art
Fibre channel is an industry-standard interface adopted by the American National Standards Institute (ANSI) and primarily is used for storage networking. A fibre channel arbitrated loop (FC-AL) is a loop architecture that can have up to a maximum of 126 nodes or ports, such as server or storage elements, connected together by a loop. FC-ALs use a serial interface to transmit data and control signals from port to port. As data is transmitted from port to port in the FC-AL, the data may be delayed by an elasticity buffer or FIFO array found in each FC-AL port to account for the differences between a port's incoming and outgoing data rate.
In other network topologies, FIFO arrays or buffers may be permitted to operate while empty. However, FC-AL standards require an indication that the decrease of a buffer's contents by one transmission word signifies an urgent condition, or that a two-word decrease signifies a very urgent condition. From these requirements, an FC-AL port's FIFO will maintain at least 3 transmission words to account for the differences in upstream and downstream device data rates. A transmission word used in a FC-AL port is composed of four contiguous transmission characters. One example of a transmission word is a fill word, with the fill word being an idle signal transmitted being data frames. The fill word is composed of four fill characters, with each fill word being equal to 40 bits. The fill word may be inserted or deleted from the FIFO between data frames, depending on the differences in upstream and downstream device data rates. A maximum delay, or latency, for a port in a FC-AL may be 6 fill words, or 240 bits. Accordingly, one measurement of the performance of a fibre channel arbitrated loop is the loop delay per loop port.
Typically, a FC-AL Elastic Loop FIFO may handle the data rate differences (incoming and outgoing) between a port by maintaining a threshold level of 3 transmission words. When the data rate from an upstream device is faster, the downstream device needs to delete a transmission word between data frames to keep the FIFO from overflowing. If the data rate of the upstream device is slower, the downstream device needs to insert a transmission word between data frames to keep the FIFO from underflowing. With this type of FIFO operation, FC-AL network performance may not be improved, as upstream or downstream devices need to delete or insert transmission words to keep the FIFO threshold level at 3 transmission words. However, if the data transfer rate of an upstream device is known, FC-AL network performance may be improved by dynamically reducing the FIFO threshold level while still maintaining the proper data transfer rate offset between an upstream and a downstream device.
Therefore, it would be desirable to have an apparatus that can dynamically reduce the Elastic Loop FIFO threshold level, thereby reducing the loop delay per loop port in a fibre channel arbitrated loop.